Skip to content

Linux v6.15#4

Open
joaopeixoto13 wants to merge 6 commits intomainfrom
linux-v6.15
Open

Linux v6.15#4
joaopeixoto13 wants to merge 6 commits intomainfrom
linux-v6.15

Conversation

@joaopeixoto13
Copy link
Copy Markdown
Member

No description provided.

@joaopeixoto13 joaopeixoto13 force-pushed the linux-v6.15 branch 2 times, most recently from cf98b3a to 778b19c Compare February 21, 2026 09:07
Signed-off-by: João Peixoto <joaopeixotooficial@gmail.com>
Update I/O dispatcher module with the latest refactor changes
due to the ongoing Linux upstream efforts.

Signed-off-by: João Peixoto <joaopeixotooficial@gmail.com>
Update IPC shared memory module with the latest refactor changes
due to the ongoing Linux upstream efforts.

Signed-off-by: João Peixoto <joaopeixotooficial@gmail.com>
…percall inline asm

The inline assembly block for the `ecall` in bao_remio_hypercall()
specified registers a0–a7 as both input ("r") and read-write ("+r")
operands.

Since "+r" already marks the operands as input-output, the additional
input-only constraints are redundant and unnecessary. Removing them
simplifies the constraint list without changing semantics and avoids
potential confusion for future maintainers.

No functional changes intended.

Signed-off-by: João Peixoto <joaopeixotooficial@gmail.com>
…ext fields

Initialize client->virtio_requests_lock in bao_io_client_create().
Without explicitly initializing this mutex, the first lock operation
can trigger a breakpoint (BKP) exception on RISC-V due to operating
on an uninitialized lock structure.

Also explicitly initialize ctx.access_width and ctx.npend_req in
bao_dispatch_io() before issuing the hypercall. This avoids passing
uninitialized stack data to the hypervisor and makes the hypercall
context state fully defined.

These changes improve robustness and prevent runtime exceptions on
RISC-V systems.

Signed-off-by: João Peixoto <joaopeixotooficial@gmail.com>
Drop the explicit loop calling bao_dispatch_io() when creating a
control client.

There is no need to proactively check and drain pending requests at
this point. Bao guarantees that the backend VM is notified via an
interrupt whenever there are requests to process, even if the
frontend initiates the interaction first. As a result, the backend
will naturally enter the dispatch path when work is available.

Removing this loop simplifies the initialization path and avoids
redundant polling without changing behavior.

Signed-off-by: João Peixoto <joaopeixotooficial@gmail.com>
Copy link
Copy Markdown
Member

@josecm josecm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we also allow for ipc-shmems where there is only a read-channel?

A good idea would be to write the device tree bindings for these modules also.

Comment thread ipc/ipcshmem.c
Comment on lines +154 to +164
ret = of_property_read_u32_index(np, "read-channel", 0, &read_offset);
if (ret) {
dev_err(dev, "failed to read 'read-channel' offset: %d\n", ret);
return ret;
}

ret = of_property_read_u32_index(np, "read-channel", 1, &read_size);
if (ret) {
dev_err(dev, "failed to read 'read-channel' size: %d\n", ret);
return ret;
}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do these consider the case where #address-cells or #size-cells are greater than 1?

Comment thread include/hypercall.h
register u32 r5 asm("r5") = ctx->request_id;
register u32 r6 asm("r6") = 0;

asm volatile("hvc 0\n\t"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why can't we use arm_smccc_hvc here also?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants